* {
  margin: 0;
  padding: 0;
  outline: none !important;
}

html,
body,
#app {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
  font-size: 14px;
  overflow: hidden;
  position: relative;
}

a,
a:focus,
a:hover {
  cursor: pointer;
  color: inherit;
  text-decoration: none;
}

.layout-container {
  height: 100vh;
  display: flex;

  .layout-sidebar {
    background: var(--theme-menu-bg-color);
    position: relative;
    transition: width 0.3s ease;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow-x: auto;
    overflow-y: auto;
    border-right: 1px solid var(--el-border-color);
  }

  .layout-header {
    background-color: var(--theme-header-bg-color) !important;
    color: var(--theme-header-text-color) !important;
    display: flex;
    flex-direction: column;
    padding: 0;
    width: 100%;
    height: auto !important;
  }

  .layout-main {
    padding: 0 !important;
    overflow: hidden;
    flex: 1;
    background-color: var(--theme-main-bg-color);

    .layout-scrollbar {
      flex: 1;
      padding: 15px;

      .layout-card {

        .layout-query-card {
        }

        .layout-table-card {

          .layout-table {
            .layout-table-header {
              background: var(--el-fill-color-light);
              color: var(--el-text-color-regular);
            }
          }
        }
      }
    }
  }
}

/* fade 过渡动画样式 */
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.3s ease;
}

.fade-enter-from,
.fade-leave-to {
  opacity: 0;
}

/* 可选：slide 过渡动画样式 */
.slide-enter-active,
.slide-leave-active {
  transition: all 0.15s ease;
}

.slide-enter-from {
  transform: translateX(20px);
  opacity: 0;
}

.slide-leave-to {
  transform: translateX(-20px);
  opacity: 0;
}

/* 可选：zoom 过渡动画样式 */
.zoom-enter-active,
.zoom-leave-active {
  transition: all 0.3s ease;
}

.zoom-enter-from {
  transform: scale(0.95);
  opacity: 0;
}

.zoom-leave-to {
  transform: scale(1.05);
  opacity: 0;
}
